package com.ruoyi.mapper.purchase;

import com.ruoyi.domain.purchase.MesPurchaseReturnItem;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 采购退货明细表Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
@Mapper
public interface MesPurchaseReturnItemMapper {
    /**
     * 查询采购退货明细表
     * 
     * @param itemId 采购退货明细表主键
     * @return 采购退货明细表
     */
    public MesPurchaseReturnItem selectMesPurchaseReturnItemByItemId(Long itemId);

    /**
     * 查询采购退货明细表列表
     * 
     * @param mesPurchaseReturnItem 采购退货明细表
     * @return 采购退货明细表集合
     */
    public List<MesPurchaseReturnItem> selectMesPurchaseReturnItemList(MesPurchaseReturnItem mesPurchaseReturnItem);

    /**
     * 新增采购退货明细表
     * 
     * @param mesPurchaseReturnItem 采购退货明细表
     * @return 结果
     */
    public int insertMesPurchaseReturnItem(MesPurchaseReturnItem mesPurchaseReturnItem);

    /**
     * 修改采购退货明细表
     * 
     * @param mesPurchaseReturnItem 采购退货明细表
     * @return 结果
     */
    public int updateMesPurchaseReturnItem(MesPurchaseReturnItem mesPurchaseReturnItem);

    /**
     * 删除采购退货明细表
     * 
     * @param itemId 采购退货明细表主键
     * @return 结果
     */
    public int deleteMesPurchaseReturnItemByItemId(Long itemId);

    /**
     * 批量删除采购退货明细表
     * 
     * @param itemIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesPurchaseReturnItemByItemIds(Long[] itemIds);

    /**
     * 根据退货单ID查询明细列表
     * 
     * @param returnId 退货单ID
     * @return 明细集合
     */
    public List<MesPurchaseReturnItem> selectItemListByReturnId(Long returnId);

    /**
     * 根据退货单ID删除明细
     * 
     * @param returnId 退货单ID
     * @return 结果
     */
    public int deleteMesPurchaseReturnItemByReturnId(Long returnId);

    /**
     * 批量新增采购退货明细
     * 
     * @param returnItemList 明细列表
     * @return 结果
     */
    public int batchInsertMesPurchaseReturnItem(List<MesPurchaseReturnItem> returnItemList);

    /**
     * 根据物料编码查询退货明细
     * 
     * @param materialCode 物料编码
     * @return 明细列表
     */
    public List<MesPurchaseReturnItem> selectItemListByMaterialCode(String materialCode);

    /**
     * 根据批次号查询退货明细
     * 
     * @param batchCode 批次号
     * @return 明细列表
     */
    public List<MesPurchaseReturnItem> selectItemListByBatchCode(String batchCode);
}